package gui;

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JTable;
import javax.swing.JScrollPane;

import negocio.Clase;
import negocio.ClaseControlador;
import negocio.Cursada;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.ArrayList;

public class Clases extends JFrame {

	private JPanel contentPane;
	private JTable table;
	private Clases padreClases = this;
	private Asistencias asistencias = null;
	private ArrayList<Clase> clases;
	private Cursada cursada;
	
	public void nullAsistencias()
	{
		this.asistencias = null;
	}
	

	/**
	 * Launch the application.
	 */
	/*public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Clases frame = new Clases();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public Clases(Cursadas padre, Cursada cursada) {
		
		this.cursada = cursada;
		
		setTitle("Asistencias");
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e){
				padre.nullClases();
			}
		});
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setBounds(210, 210, 554, 295);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel lblResultadosDeBusqueda = new JLabel("Clases:");
		lblResultadosDeBusqueda.setBounds(10, 11, 142, 14);
		contentPane.add(lblResultadosDeBusqueda);
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(10, 36, 518, 179);
		contentPane.add(scrollPane);
		
		DefaultTableModel tableModel = new DefaultTableModel();
		Object[] encabezado= {"Fecha","Hs. Inicio","Hs. Fin"};
		tableModel.setColumnIdentifiers(encabezado);
		
		table = new JTable()
		{
			@Override
		    public boolean isCellEditable(int row, int colum)
		    {
				return false;
		    }
		};
		scrollPane.setViewportView(table);
		table.setModel(tableModel);
		llenarTabla();
		
		JButton btnReportarAsistencia = new JButton("Reportar asistencia");
		btnReportarAsistencia.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				if(asistencias == null)
					asistencias = new Asistencias(padreClases, clases.get(table.getSelectedRow()));
				asistencias.setVisible(true);
			}
		});
		btnReportarAsistencia.setBounds(10, 226, 131, 23);
		contentPane.add(btnReportarAsistencia);
		
		JButton btnSalir = new JButton("Salir");
		btnSalir.addMouseListener(new MouseAdapter() 
		{
			@Override
			public void mouseClicked(MouseEvent e) {
				padre.nullClases();
				dispose();
			}
		});
		btnSalir.setBounds(439, 226, 89, 23);
		contentPane.add(btnSalir);
	}
	
	public void llenarTabla()
	{
		clases = new ArrayList<Clase>();
		DefaultTableModel tm = new DefaultTableModel();
		Object[] encabezado = {"Fecha", "Hora de inicio", "Hora de finalizacion", "Aula"};
		tm.setColumnIdentifiers(encabezado);
		clases = ClaseControlador.getClases(cursada);
		for(Clase c : clases)
		{
			Object[] fila = {c.getFecha().toString(), c.getHoraInicio().toString(), c.getHoraFin(), c.getSala().toString()};
			tm.addRow(fila);
		}
		table.setModel(tm);
	}
}
